[AFF-BACKEND-002] Создать метод RegisterInteraction
Реализация алгоритма парных совпадений и сохранение весов в Redis
NoteКраткая карточка задачи
- Репозиторий / Компонент:
affinity-service(Домен Recommendation Domain). - Контракт метода: Внутренний gRPC-сервер, метод
RegisterInteraction. - Ссылка на Метод: Спецификация метода
- Статус: Готово к реализации
- Инструкция по шагам:
- Принять gRPC-запрос от
helper-service. Извлечьuser_idиitems_list. - Реализация алгоритма совпадений: Разработать комбинаторный алгоритм разбиения списка продуктов на уникальные пары (Unordered Pairs). Например, при покупке
[A, B, C]сформировать пары(A, B),(A, C),(B, C). - На Шаге 3: Для каждой сформированной пары выполнить атомарный инкремент веса связи в
In-Memory Redis(база данныхaffinity_dbсогласно топологии). - Использовать структуру данных Sorted Set (ZSET) или хэш-мапы (HINCRBYFLOAT). Ключ:
affinity:user:{user_id}:product:{product_A}, поле:{product_B}, значение инкремента:+1.0. Дублировать инкремент симметрично дляproduct_B->product_A.
- Принять gRPC-запрос от